package com.backwaveweibo.bww.utils;

/**
 * @author GHW : RD-Kelsey
 * @description 响应结果生成工具
 * @date 2020/6/8
 */

public class ResultGenerator {
    private static final String DEFAULT_SUCCESS_MESSAGE = "请求成功";

    /**
     * 生成成功结果
     *
     * @return Result类
     */
    public static Result genSuccessResult() {
        return new Result()
                .setCode(ResultCode.SUCCESS)
                .setMessage(DEFAULT_SUCCESS_MESSAGE);
    }

    /**
     * @param code    自定义状态码 {@link com.backwaveweibo.bww.utils.ResultCode}
     * @param message 响应信息
     * @return Result类
     */
    public static Result genSuccessResult(ResultCode code, String message) {
        return new Result()
                .setCode(code)
                .setMessage(message);
    }

    /**
     * 生成成功结果（带数据）
     *
     * @param code    自定义状态码 {@link com.backwaveweibo.bww.utils.ResultCode}
     * @param message 响应信息
     * @param data    数据实体 可变形参
     * @return Result类
     */
    public static Result genSuccessResult(ResultCode code, String message, Object... data) {
        return new Result()
                .setCode(code)
                .setMessage(message)
                .setData(data);
    }

    /**
     * 生成失败结果（带自定义信息）
     *
     * @param code    自定义状态码 {@link com.backwaveweibo.bww.utils.ResultCode}
     * @param message 响应信息
     * @return Result类
     */
    public static Result genFailResult(ResultCode code, String message) {
        return new Result()
                .setCode(code)
                .setMessage(message);
    }

    public static Result genFailResult(ResultCode code, String message, Object... data) {
        return new Result()
                .setCode(code)
                .setMessage(message)
                .setData(data);
    }
}
